package com.yc.cloud.api.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 录制任务执行结果状态枚举
 *
 * @author kinggu
 * @since 2025-01-15
 */
@Getter
@AllArgsConstructor
public enum RecordingResultStatusEnum {

    /**
     * 成功
     */
    SUCCESS("SUCCESS", "成功"),

    /**
     * 失败
     */
    FAILED("FAILED", "失败"),

    /**
     * 跳过
     */
    SKIPPED("SKIPPED", "跳过");

    private final String code;
    private final String description;

    /**
     * 根据代码获取枚举
     * @param code 结果状态代码
     * @return 结果状态枚举
     */
    public static RecordingResultStatusEnum getByCode(String code) {
        if (code == null) {
            return null;
        }
        for (RecordingResultStatusEnum status : values()) {
            if (status.getCode().equals(code)) {
                return status;
            }
        }
        return null;
    }

    /**
     * 判断是否为成功
     * @param code 结果状态代码
     * @return 是否为成功
     */
    public static boolean isSuccess(String code) {
        return SUCCESS.getCode().equals(code);
    }

    /**
     * 判断是否为失败
     * @param code 结果状态代码
     * @return 是否为失败
     */
    public static boolean isFailed(String code) {
        return FAILED.getCode().equals(code);
    }

    /**
     * 判断是否为跳过
     * @param code 结果状态代码
     * @return 是否为跳过
     */
    public static boolean isSkipped(String code) {
        return SKIPPED.getCode().equals(code);
    }
}